Windows Installer Package: Basics of the Popular Technology
image of banner
Back

What Is Windows Installer Package and What You Need to Know About It

To ensure consistency in the internal database of installed products, Microsoft encourages companies to use Windows Installer as a foundation for installation frameworks.

In this article, we take a closer look at the basics of the Windows Installer package, its structure, components, and features.

What Are Windows Installer and Windows Installer Service?

Windows Installer is a software component and app programming interface (API) that installs, maintains, and removes software on the MS Windows operating system. The installation information and files are in installation packages — relational databases typically known as MSI files. MSI is one of the most popular Windows Installer package formats using Windows Installer service.

In its turn, Microsoft developed the Windows Installer service to create a streamlined process for installing and managing applications. It consists of an API and a runtime service to help make application installation and ongoing management a part of the basic Windows system services.

The Windows Installer service is not an installation-authoring tool, but an installation engine and a rule set for installation packages. The Windows Installer engine resides on the destination computer as part of the operating system. The executable – msiexec.exe – reads the installation database, performs the installation, and fulfills any subsequent necessary management – such as self-repair.

Specifics of the Windows Installer Package

Instead of an installation executable (such as setup.exe, another popular approach for installing applications on Windows), your installation is in the form of a database file, an MSI, — a Windows Installer package containing instructions and can enclose installation files.

Because this database uses highly structured and uniform data tables, there is total accountability of where each file is installed. With advanced logging, each step of the installation process can be tracked. Due to this, individual files can readily be restored to repair damaged applications.

Each table of MSI is dedicated to a particular type of installation information, such as Class, Components, Features, Files, Execution Sequence, and Registry. Certain logic is built into the Windows Installer engine, such as when to prompt for a reboot, disk space checking, and file version replacement rules.

When the Windows Installer package is opened, msiexec.exe reads the data stored in the database and builds an internal script. It then performs the actions in the script to complete the installation. If the installation fails, the Windows Installer package contains functionality to roll back the machine to its previous state.

Windows Installer Package Structure

Packages represent the installation of one or more full programs or products (Windows Installer doesn’t manage dependencies between various products at the same time) and are characterized by GUID (the PackageCode property).

Products, in their turns, consist of components grouped into features. In addition, products have codes. Product codes are GUIDs that serve as the principal identifier for applications and products.

Installer packages incorporate all the information needed to install, uninstall, and run setup user interfaces for applications and products.

Among the components of every installation package are an MSI file containing an installation database and a summary information stream, as well as data streams for the various parts of the installation. There may also be one or more transformations, source files, or cabinet files included in an MSI package.

Learn more on how to create an MSI installer with the help of PACE Suite.

Application developers should author an installation before the installer can be used. Authoring an installation package involves the following steps since the installer organizes installations around components, features, and keeps all information about the installation in a relational database:

  • Specify the features to be shown to users.
  • Organize the application into components.
  • Populate the installation database with information.
  • Validate the installation package.

The choice of features is commonly determined by the application’s functionality from the user’s perspective. It is recommended that developers use a standard procedure for choosing components.

Package authors can use third-party package creation tools or a table editor and the Windows Installer SDK to populate the installation database. All installation packages must be validated for internal consistency.

One of the most convenient tools for creating MSI packages is PACE Suite that can be used by enterprises as well as medium and small businesses.

The application packaging tool PACE Suite offers an intuitive user interface and intelligent software wizards for automating all the steps needed to create an installation package. It also eliminates the possibility of human error by integrating the best industry practices into the solution.

Windows Installer Package Components and Features

Windows Installer package organizes an installation around components and features.

A feature is a part of the application’s full functionality that a user recognizes and may decide to install independently. For example, a feature could be a spell-checker, a thesaurus, or a set of clip art. Hierarchical relationships between parent and child features commonly exist, so if a child feature is installed, the parent feature is also automatically installed.

A component is part of an application or product. A component can be a single file, a group of files, component object models, shortcuts, registry keys, libraries, or shared pieces of code.

The service installs or removes a component as a single piece. It tracks every component by the ID GUID specified in the ComponentId column.

Note: Two components with the same component ID are regarded as multiple instances of the same component, no matter their content. Only a single instance of any component will be installed on a computer. Some components may therefore be shared by several features or applications.

Since components are generally shared, the author of an installation package must go by rigid rules when defining the components of a feature or app. It is critical for the correct operation of the Windows Installer reference-counting mechanism. Each component must be located in a single folder.

Note: No file, registry entry, shortcut, or other resources should ever be shipped as a member of more than one component. It applies across products, product versions, and companies. Authors of installation packages need to decide how to divide their applications into features and components.

The selection of features is primarily determined by the application’s functionality from the user’s perspective. Because components commonly may be shared across applications or even across products, it is recommended that authors follow a standard method for selecting components.

MSI is one of the most popular package types today. That’s why it’s important to know inside and out of the technology, starting from such questions as “what is an MSI installer, Windows Installer package and its structure, etc.?

Additionally, various tools are available on the market for creating MSI installer packages, and you can pick the one that appeals to you the most. You can also test PACE Suite absolutely for free within 21 days.

Blog